package com.wobito.common.utils;


import com.alibaba.fastjson.JSON;
import com.wobito.common.constants.BaseResponse;
import com.wobito.common.constants.ErrorCode;


public class ResultUtils {

    public static <T> BaseResponse<T> success() {
        return new BaseResponse<>(200, null, "操作成功");
    }

    /**
     * 成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(200, data, "操作成功");
    }

    /**
     * 成功 DATA_JSON
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> BaseResponse<T> successJSON(T data) {
        return new BaseResponse<>(200, JSON.toJSONString(data), "操作成功");
    }

    /**
     * 失败
     *
     * @param errorCode
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode) {
        return new BaseResponse<>(errorCode);
    }

    /**
     * 失败
     *
     * @param code
     * @param message
     * @param description
     * @return
     */
    public static BaseResponse error(int code, String message, String description) {
        return new BaseResponse(code, null, message, description);
    }

    /**
     * 失败
     *
     * @param errorCode
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode, String message, String description) {
        return new BaseResponse(errorCode.getCode(), null, message, description);
    }

    /**
     * 失败
     *
     * @param errorCode
     * @return
     */
    public static BaseResponse error(ErrorCode errorCode, String description) {
        return new BaseResponse(errorCode, description);
    }
    public static BaseResponse success(int code, String message, String description) {
        return new BaseResponse(code, null, message, description);
    }
}
